#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

int main()
{
	// fork函数，创建一个子进程，返回值类型其实就是整形类型。
	// 返回值为零说明子进程被创建出来了。小于零发生了错误，大于零说明该进程是父进程。
	// 都是子进程了，父进程肯定会保存子进程ID，父子进程两者分开执行，可以执行一份程序的不同代码。
	int id = fork();

	if(id == 0)
	{
		int count = 5;
		while(count--)
		{
			printf("我是一个子进程，ID:%d,父进程ID:%d\n",getpid(),getppid());
			sleep(1);
		}
	}
	else if(id < 0)
	{
		perror("fork");
		return 1;	
	}
	else if(id > 0)
	{
		while(1)
		{
			printf("我是一个父进程ID:%d\n",getpid());
			sleep(1);
		}
	}

	return 0;
}
